{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第一次实战：TensorFlow-Keras构建分类模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.0.0\n",
      "sys.version_info(major=3, minor=6, micro=10, releaselevel='final', serial=0)\n",
      "matplotlib 3.1.2\n",
      "numpy 1.18.1\n",
      "pandas 0.25.3\n",
      "sklearn 0.22.1\n",
      "tensorflow 2.0.0\n",
      "tensorflow_core.keras 2.2.4-tf\n"
     ]
    }
   ],
   "source": [
    "# 导入\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "import numpy as np\n",
    "import sklearn\n",
    "import pandas as pd\n",
    "import os\n",
    "import sys\n",
    "import time\n",
    "import tensorflow as tf\n",
    "from tensorflow import keras\n",
    "\n",
    "print(tf.__version__)\n",
    "print(sys.version_info)\n",
    "for module in mpl,np,pd,sklearn,tf,keras:\n",
    "    print(module.__name__,module.__version__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 测试 GPU\n",
    "# gpus = tf.config.experimental.list_physical_devices(device_type='GPU')\n",
    "# cpus = tf.config.experimental.list_physical_devices(device_type='CPU')\n",
    "# print(gpus, cpus)\n",
    "# tf.test.is_gpu_available()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 实战开始"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据读取和展示"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(5000, 28, 28) (5000,)\n",
      "(55000, 28, 28) (55000,)\n",
      "(10000, 28, 28) (10000,)\n"
     ]
    }
   ],
   "source": [
    "# 导入数据集fashion mnist\n",
    "fashion_mnist = keras.datasets.fashion_mnist\n",
    "(x_train_all,y_train_all),(x_test,y_test) = fashion_mnist.load_data()\n",
    "x_valid,x_train = x_train_all[:5000],x_train_all[5000:]\n",
    "y_valid,y_train = y_train_all[:5000],y_train_all[5000:]\n",
    "\n",
    "print(x_valid.shape,y_valid.shape)\n",
    "print(x_train.shape,y_train.shape)\n",
    "print(x_test.shape,y_test.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def show_single_image(img_arr):\n",
    "    plt.imshow(img_arr,cmap=\"binary\")\n",
    "    plt.show()\n",
    "    \n",
    "show_single_image(x_train[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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mk901Dz2IewKJfa1AXVvK5XAV5WXNchrkBMbfh2aShAEQdAY8VIJgiAIGqNR85evKyVVVs5gLY4DtSPZmx1k9vKONqlnUtu8uqvtvTlL5rScyizHqP9NZf1/5StfGfQ5Djc556OO2av2MpV4dVUmAOWaAGy33XZAbTr0JkoFTyy33HJVm0wRfjuNcS57X33dUD+tEzmzVu6Yc6YHzWHl4njnp8xa3qGuNl/ZwNcGg9bx1fz2AQDah69s0E15VYMhN5aaX95EreoCfn5rO79Uhczhur/99votn3Plf6OXyI2b8u00Z3OBT5dddlnV9uc//7mlD+p5pnHxz1P9pncx5BY8GwyhqQRBEASN0aimoqxP6OsE9RK4NArvvNebN1f7K+fIy4XAaXuvqeg39Jb2GboPPPDAIM9sdJEz3ku+Gl+fma0aaf/85z+rtl/+8pdA7fC95557qj5JwT6zNrdwmTQgOU893bQU82BChL2EJ6nMj6s0QB8AokoCf/nLX4A6XBNqTdAv+nTDDTcArY5izTtphf66aay9o17X93e/+13Vtv322wMTp6k0uUCTl3BzzniNce4e/c1vfgPUQSJQh8v654fmpn9GaJz8NWw/Jn88+pyrljxcDHWcc9VCOn23PUUA6vPcdtttqzbN32uvvbZq03xXeLt/1qqGn38++DqEQ6F7nghBEARBzxMvlSAIgqAxGjV/KRcCOquBUru8iUVqqTddtePjqqXSenVX+/Nt7Tkx3qzhVb1uRg5yb05Rm3dkKibdZ9QLBVFssskmVZucml5F1nXz5cJlHsqZOroJmUl9QEH7PPSmEM01nxulxdL83FB+kPbvFyS74oorgHoRJYC111675TehNlfoX59LpHntnfLKBt9www2rtm5x0HcyeUHexHT66acDcP755wOwxRZbVH0yQ/vzl1nVm1d1XRXE4K+bftOPufbnF+5S9YLRxD/3ND8HurdUTUH3pV/MUMFNflkLPe+8iUuFUDXf/HEo98w/HyeW0FSCIAiCxmhU9PQLYOVC34QcRl4KyWk2ent30nq89qLPXlLVW9xvJyTlq7Q79A39HGk6Oel8iF+uLPWzzz4L1BI11A44jbUP+9bY+O015n6/XgIayvGONLmQ5/bFnryTWeHmXivZeuutATjmmGOqNpVQV4axX675tttuA2CllVaq2iT1+XHTXFM4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\n",
      "text/plain": [
       "<Figure size 504x345.6 with 15 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 多行多列数据展示\n",
    "def show_imgs(n_rows,n_cols,x_data,y_data,class_names):\n",
    "    assert len(x_data) == len(y_data)\n",
    "    assert n_rows * n_cols < len(x_data)\n",
    "    plt.figure(figsize=(n_cols*1.4,n_rows*1.6))\n",
    "    for row in range(n_rows):\n",
    "        for col in range(n_cols):\n",
    "            index = n_cols * row + col\n",
    "            plt.subplot(n_rows,n_cols,index+1)\n",
    "            plt.imshow(x_data[index],cmap='binary',interpolation='nearest')\n",
    "            plt.axis('off')\n",
    "            plt.title(class_names[y_data[index]])\n",
    "    plt.show()\n",
    "\n",
    "class_names = ['T-shirt','Trouser','Pullover','Dress','Coat','Sandal',\n",
    "               'Shirt','Sneaker','Bag','Ankle boot']\n",
    "show_imgs(3,5,x_train,y_train,class_names)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 模型构建\n",
    "使用tf.keras.models.Sequential()构建\n",
    "\n",
    "**激活函数：**\n",
    "\n",
    "relu：y = max(0,x)\n",
    "\n",
    "softmax：将向量变成概率分布，x = [x1, x2, x3] ,y = [e^x1/sum, e^x2/sum, e^x3/sum],sum = e^x1 + e^x2 + e^x3\n",
    "\n",
    "**损失函数：**\n",
    "\n",
    "reason for sparse_categorical_crossentropy: y->index，当y值为索引时使用sparse_categorical_crossentropy\n",
    "\n",
    "reason for categorical_crossentropy: y->one_hot->[]，当y值为向量时使用categorical_crossentropy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = keras.models.Sequential()\n",
    "# 构建模型\n",
    "model.add(keras.layers.Flatten(input_shape=[28,28]))\n",
    "model.add(keras.layers.Dense(300, activation='relu'))\n",
    "model.add(keras.layers.Dense(100, activation='relu'))\n",
    "model.add(keras.layers.Dense(10, activation='softmax'))\n",
    "\n",
    "# 模型编译，固化模型\n",
    "model.compile(loss='sparse_categorical_crossentropy',\n",
    "              optimizer='adam',\n",
    "              metrics=['accuracy'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<tensorflow.python.keras.layers.core.Flatten at 0x2dccc6397b8>,\n",
       " <tensorflow.python.keras.layers.core.Dense at 0x2dccc639a20>,\n",
       " <tensorflow.python.keras.layers.core.Dense at 0x2dccc639518>,\n",
       " <tensorflow.python.keras.layers.core.Dense at 0x2dccc9bef28>]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 查看模型网络层\n",
    "model.layers"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "参数计算：[Node, 784] * W + b -> [None, 300]\n",
    "\n",
    "其中：W.shape [784, 300],b = [300]\n",
    "\n",
    "参数个数为：784 * 300 + 300 = 235500"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "flatten (Flatten)            (None, 784)               0         \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 300)               235500    \n",
      "_________________________________________________________________\n",
      "dense_1 (Dense)              (None, 100)               30100     \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 10)                1010      \n",
      "=================================================================\n",
      "Total params: 266,610\n",
      "Trainable params: 266,610\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "# 查看模型概况\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 55000 samples, validate on 5000 samples\n",
      "Epoch 1/10\n",
      "55000/55000 [==============================] - 7s 134us/sample - loss: 2.2530 - accuracy: 0.7227 - val_loss: 0.6938 - val_accuracy: 0.7726\n",
      "Epoch 2/10\n",
      "55000/55000 [==============================] - 6s 118us/sample - loss: 0.6010 - accuracy: 0.7813 - val_loss: 0.6045 - val_accuracy: 0.7718\n",
      "Epoch 3/10\n",
      "55000/55000 [==============================] - 6s 118us/sample - loss: 0.4957 - accuracy: 0.8211 - val_loss: 0.4420 - val_accuracy: 0.8502\n",
      "Epoch 4/10\n",
      "55000/55000 [==============================] - 7s 119us/sample - loss: 0.4468 - accuracy: 0.8414 - val_loss: 0.4097 - val_accuracy: 0.8524\n",
      "Epoch 5/10\n",
      "55000/55000 [==============================] - 7s 125us/sample - loss: 0.4242 - accuracy: 0.8504 - val_loss: 0.3759 - val_accuracy: 0.8682\n",
      "Epoch 6/10\n",
      "55000/55000 [==============================] - 7s 126us/sample - loss: 0.3987 - accuracy: 0.8580 - val_loss: 0.3757 - val_accuracy: 0.8662\n",
      "Epoch 7/10\n",
      "55000/55000 [==============================] - 7s 122us/sample - loss: 0.3917 - accuracy: 0.8607 - val_loss: 0.3659 - val_accuracy: 0.8740\n",
      "Epoch 8/10\n",
      "55000/55000 [==============================] - 7s 119us/sample - loss: 0.3753 - accuracy: 0.8664 - val_loss: 0.3913 - val_accuracy: 0.8636\n",
      "Epoch 9/10\n",
      "55000/55000 [==============================] - 7s 118us/sample - loss: 0.3626 - accuracy: 0.8703 - val_loss: 0.3925 - val_accuracy: 0.8684\n",
      "Epoch 10/10\n",
      "55000/55000 [==============================] - 7s 120us/sample - loss: 0.3541 - accuracy: 0.8739 - val_loss: 0.3762 - val_accuracy: 0.8736\n"
     ]
    }
   ],
   "source": [
    "# 模型训练\n",
    "history = model.fit(x_train,y_train,epochs=10,validation_data=(x_valid,y_valid))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tensorflow.python.keras.callbacks.History"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(history)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'loss': [2.252973679898002,\n",
       "  0.6010384150244973,\n",
       "  0.49572524303739723,\n",
       "  0.44677537425648084,\n",
       "  0.42422140744382686,\n",
       "  0.3986935216947035,\n",
       "  0.3917056222438812,\n",
       "  0.37526552578969435,\n",
       "  0.3625671004815535,\n",
       "  0.3540918510827151],\n",
       " 'accuracy': [0.7227091,\n",
       "  0.78132725,\n",
       "  0.82109094,\n",
       "  0.84138185,\n",
       "  0.8504182,\n",
       "  0.85801816,\n",
       "  0.8606909,\n",
       "  0.8664,\n",
       "  0.8702545,\n",
       "  0.8739455],\n",
       " 'val_loss': [0.6937596523761749,\n",
       "  0.6044613958358764,\n",
       "  0.44202527194023133,\n",
       "  0.4097229866504669,\n",
       "  0.37589818527698515,\n",
       "  0.37565783894062044,\n",
       "  0.36589641997814176,\n",
       "  0.3913193448185921,\n",
       "  0.3924978404402733,\n",
       "  0.3761902744293213],\n",
       " 'val_accuracy': [0.7726,\n",
       "  0.7718,\n",
       "  0.8502,\n",
       "  0.8524,\n",
       "  0.8682,\n",
       "  0.8662,\n",
       "  0.874,\n",
       "  0.8636,\n",
       "  0.8684,\n",
       "  0.8736]}"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 模型训练时的中间变化结果\n",
    "history.history"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画图展示变化\n",
    "def plot_learning_curves(history):\n",
    "    pd.DataFrame(history.history).plot(figsize=(8,5))\n",
    "    plt.grid(True)\n",
    "    plt.gca().set_ylim(0,1)\n",
    "    plt.show()\n",
    "    \n",
    "plot_learning_curves(history)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据归一化后再训练\n",
    "\n",
    "减去均值，再除以方差：x = (x - u) / std"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据归一化\n",
    "scaler不仅要transform，将数据归一化，而且要fit，将训练集的均值和方差保存下来，为了之后的验证集和测试集做归一化，使用的依然是训练集的均值和方差。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "scaler = StandardScaler()\n",
    "x_train_scaled = scaler.fit_transform(\n",
    "    x_train.astype(np.float32).reshape(-1,1)).reshape(-1,28,28)\n",
    "x_valid_scaled = scaler.transform(\n",
    "    x_valid.astype(np.float32).reshape(-1,1)).reshape(-1,28,28)\n",
    "x_test_scaled = scaler.transform(\n",
    "    x_test.astype(np.float32).reshape(-1,1)).reshape(-1,28,28)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.0231433 -0.8105136\n"
     ]
    }
   ],
   "source": [
    "# 查看归一化后最大值和最小值\n",
    "print(np.max(x_train_scaled),np.min(x_train_scaled))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 模型再训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 55000 samples, validate on 5000 samples\n",
      "Epoch 1/10\n",
      "55000/55000 [==============================] - 7s 129us/sample - loss: 0.3894 - accuracy: 0.8578 - val_loss: 0.3328 - val_accuracy: 0.8808\n",
      "Epoch 2/10\n",
      "55000/55000 [==============================] - 7s 124us/sample - loss: 0.3062 - accuracy: 0.8872 - val_loss: 0.3364 - val_accuracy: 0.8752\n",
      "Epoch 3/10\n",
      "55000/55000 [==============================] - 7s 123us/sample - loss: 0.2881 - accuracy: 0.8931 - val_loss: 0.3142 - val_accuracy: 0.8866\n",
      "Epoch 4/10\n",
      "55000/55000 [==============================] - 7s 125us/sample - loss: 0.2709 - accuracy: 0.8999 - val_loss: 0.3214 - val_accuracy: 0.8854\n",
      "Epoch 5/10\n",
      "55000/55000 [==============================] - 7s 129us/sample - loss: 0.2577 - accuracy: 0.9038 - val_loss: 0.3083 - val_accuracy: 0.8892\n",
      "Epoch 6/10\n",
      "55000/55000 [==============================] - 7s 129us/sample - loss: 0.2466 - accuracy: 0.9069 - val_loss: 0.3148 - val_accuracy: 0.8906\n",
      "Epoch 7/10\n",
      "55000/55000 [==============================] - 7s 127us/sample - loss: 0.2361 - accuracy: 0.9101 - val_loss: 0.3299 - val_accuracy: 0.8916\n",
      "Epoch 8/10\n",
      "55000/55000 [==============================] - 7s 125us/sample - loss: 0.2247 - accuracy: 0.9155 - val_loss: 0.3108 - val_accuracy: 0.8958\n",
      "Epoch 9/10\n",
      "55000/55000 [==============================] - 7s 128us/sample - loss: 0.2146 - accuracy: 0.9193 - val_loss: 0.3193 - val_accuracy: 0.8878\n",
      "Epoch 10/10\n",
      "55000/55000 [==============================] - 7s 125us/sample - loss: 0.2078 - accuracy: 0.9222 - val_loss: 0.3330 - val_accuracy: 0.8888\n"
     ]
    }
   ],
   "source": [
    "# 模型训练\n",
    "history_scaled = model.fit(x_train_scaled,y_train,epochs=10,\n",
    "                    validation_data=(x_valid_scaled,y_valid))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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/vnMnz+fCy+8EIDvfve7tLW1cdRRRzF//nxeeOEFAH7yk59wzjnncNpppzFlypRB3+ub3/wmN910EyeffDKxWCy9/oorruCggw7i6KOPZv78+TzwwAPpbZdccgkzZszgiCOO2E8/ARERKSaNhebw+/089dRTebedffbZWcsVFRX88pe/HHA7yyVLlrBkyZIB+2f2igE+9rGPsX59//1YbrnlFgA8Hg+33347t99++4BjrFy5kiuvvLKgtoiIyNijYB5Djj32WMrLy7ntttuKXRUREdlPFMxjyKuvvlrsKoiIyH6mc8wiIiIOomAWERFxEAWziIiIgyiYRUREHETBLCIi4iAK5n2Q+RSpXO+//z5HHXXUAayNiIiUAgWziIiIgzj2e8z//PI/8+6ed0f1mHPr5nLj8TcOuv3GG2/k4IMP5itf+QoAN998M8YYVqxYQWtrK5FIhB/+8Iecd955e/W+oVCIL3/5y6xevTp9V6/FixezZs0aLr/8cvr6+ojH4zzyyCNMnTqVz3zmMzQ3NxOLxfje976XvgWoiIiUPscGczFcdNFFfP3rX08H87Jly3j66ae5/vrrqaqqYteuXZx44omce+65eZ/+NJg77rgDgLfeeot3332XM844g/Xr13PXXXfxta99jUsuuYS+vj5isRhPPvkkU6dO5YknngASD7oQEZHxw7HBPFTPdn9ZsGABO3fuZOvWrbS0tFBbW8uUKVO4/vrrWbFiBS6Xiy1btrBjxw4mT55c8HFXrlzJtddeC8DcuXM5+OCDWb9+PR/72Mf40Y9+RHNzM+effz6HHXYY8+bN4xvf+AY33ngj55xzDqeccsr+aq6IiDiQzjHnWLJkCQ8//DAPPfQQF110Effffz8tLS28+uqrvP766zQ0NAx4xvJwrLV513/2s5/lscceIxgMcuaZZ/L8888ze/ZsXn31VebNm8dNN93EP/7jP45Gs0REZIxwbI+5WC666CKuvPJKdu3axfLly1m2bBmTJk3C6/Xywgsv8MEHH+z1MRctWsT999/Paaedxvr169m8eTNz5sxh48aNzJo1i+uuu46NGzfy5ptvMnfuXOrq6vjc5z5HRUXFgCdSiYhIaVMw5zjyyCPp7Oxk2rRpTJkyhUsuuYRPfvKTLFy4kI9+9KPMnTt3r4/5la98hauvvpp58+bh8Xi499578fv9PPTQQ/z2t7/F6/UyefJkvv/97/PKK6/wD//wD7hcLrxeL3feeed+aKWIiDiVgjmPt956Kz0/ceJEVq1albdcV1cXnZ2debcdcsghvP322wAEAoG8Pd+bbrqJm266KWvdmWeeyZlnnjnCmouIyFinc8wiIiIOoh7zPlqzZg1XX3111jq/38+f//znItVIRETGMgXzPjryyCN5/fXXi10NEREpERrKFhERcRAFs4iIiIMomEVERBxEwSwiIuIgCuZ9MNTzmEVEREZCwVwCotFosasgIiKjxLFfl9r+T/9EeO3oPo/Zf/hcJn/724NuH83nMXd1dXHeeefl3e++++7jZz/7GcYYjj76aP7zP/+THTt2cPXVV7Nx40YA7rzzTqZOnco555yTvoPYz372M7q6urj55ptpbGzkpJNO4sUXX+Tcc89l9uzZ/PCHP6Svr48JEyZw//3309DQQFdXF9deey2rV6/GGMMPfvAD2traePvtt/mXf/kXAO699142bdrE7bffvk8/XxER2XeODeZiGM3nMQcCAR599NEB+73zzjv86Ec/4sUXX2TixIns2bMHgOuuu45TTz2VRx99lFgsRldXF62trUO+R1tbG8uXLwegtbWVl156CWMMd999Nz/96U+57bbbuOWWW6iurk7fZrS1tRWfz8fRRx/NT3/6U7xeL7/97W+5++679/XHJyIio8CxwTxUz3Z/Gc3nMVtr+fa3vz1gv+eff54lS5YwceJEAOrq6gB4/vnnue+++wBwu91UV1cPG8wXXnhher65uZkLL7yQbdu20dfXx8yZMwF47rnnePDBB9PlamtrATjttNN4/PHHOfzww4lEIsybN28vf1oiIrI/ODaYiyX1PObt27cPeB6z1+vlkEMOKeh5zIPtZ60dtred4vF4iMfj6eXc9y0vL0/PX3vttdxwww2ce+65NDU1cfPNNwMM+n5XXHEF//RP/8TcuXP53Oc+V1B9RERk/9PFXzkuuugiHnzwQR5++GGWLFlCe3v7iJ7HPNh+p59+OsuWLWP37t0A6aHs008/Pf2Ix1gsRkdHBw0NDezcuZPdu3cTDod5/PHHh3y/adOmAfCb3/wmvf6MM87g5z//eXo51Qs/4YQT+PDDD3nggQdYsmRJoT8eERHZzxTMOfI9j3n16tUsXLiQ+++/v+DnMQ+235FHHsl3vvMdTj31VObP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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_learning_curves(history_scaled)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10000/1 [================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================] - 1s 69us/sample - loss: 0.2031 - accuracy: 0.8812\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.3678897489786148, 0.8812]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 在测试集上进行指标评估\n",
    "model.evaluate(x_test_scaled,y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 实战回调函数callback\n",
    "Tensorboard，earlystopping，ModelCheckpoint"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 55000 samples, validate on 5000 samples\n",
      "Epoch 1/10\n",
      "55000/55000 [==============================] - 9s 155us/sample - loss: 0.1986 - accuracy: 0.9251 - val_loss: 0.3523 - val_accuracy: 0.8908\n",
      "Epoch 2/10\n",
      "55000/55000 [==============================] - 9s 159us/sample - loss: 0.1920 - accuracy: 0.9281 - val_loss: 0.3396 - val_accuracy: 0.8922\n",
      "Epoch 3/10\n",
      "55000/55000 [==============================] - 10s 175us/sample - loss: 0.1863 - accuracy: 0.9293 - val_loss: 0.3534 - val_accuracy: 0.8894\n",
      "Epoch 4/10\n",
      "55000/55000 [==============================] - 11s 202us/sample - loss: 0.1785 - accuracy: 0.9328 - val_loss: 0.3556 - val_accuracy: 0.8924\n",
      "Epoch 5/10\n",
      "55000/55000 [==============================] - 13s 236us/sample - loss: 0.1725 - accuracy: 0.9354 - val_loss: 0.3925 - val_accuracy: 0.8868\n",
      "Epoch 6/10\n",
      "55000/55000 [==============================] - 16s 285us/sample - loss: 0.1677 - accuracy: 0.9378 - val_loss: 0.3690 - val_accuracy: 0.8868\n",
      "Epoch 7/10\n",
      "55000/55000 [==============================] - 17s 300us/sample - loss: 0.1623 - accuracy: 0.9375 - val_loss: 0.3813 - val_accuracy: 0.8876\n"
     ]
    }
   ],
   "source": [
    "# 定义文件夹和文件\n",
    "logdir = os.path.join('callbacks')\n",
    "if not os.path.exists(logdir):\n",
    "    os.mkdir(logdir)\n",
    "output_model_file = os.path.join(logdir,'fashion_mnist_model.h5')\n",
    "\n",
    "# 定义回调函数\n",
    "callbacks = [\n",
    "    keras.callbacks.TensorBoard(log_dir=logdir,profile_batch = 100000000),\n",
    "    keras.callbacks.ModelCheckpoint(output_model_file,save_best_only=True),\n",
    "    keras.callbacks.EarlyStopping(patience=5,min_delta=1e-3),\n",
    "]\n",
    "history_callback = model.fit(x_train_scaled,y_train,epochs=10,\n",
    "                             validation_data=(x_valid_scaled,y_valid),\n",
    "                             callbacks=callbacks)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
